Compressed video data is packaged in packets for delivery. Each of these packets has a specific size depending on the standard being used. For example, BLU-RAY™ has fixed transport packet sizes of 192 bytes while HD-DVD has boundaries every 2048 bytes. Each packet typically has a few header bytes that contain information on packet type and other packet characteristics. Because the packetization of data is independent of the video elements in the video stream, video elements (e.g., slice, frame) may span several packets. Video processing requires parsing the stream for specific data patterns (e.g., startcodes representing frame, slice boundaries, slice data).
BLU-RAY™ refers to optical discs that store data according to standards and formats provided by The Blu-Ray Disc Association. The name Blu-ray derives from the blue-violet laser used to read the disc. While a standard DVD uses a 650 nanometer red laser, Blu-ray players use a shorter wavelength, a 405 nm blue-violet laser, which allows for almost ten times more data storage than a standard DVD.
When processing such video elements, the processing entity (whether hardware or software) may encounter packet boundaries and must skip over packet headers to find the next valid video element data bits. The data structures in compressed video may be different sizes, and many structure sizes are determined just as the data is to be read such that the decoding software cannot predict if a transport packet will end before the compressed video structure. For example, a video structure might be 5 bytes long but the transport packet ends in 2 bytes. In this case the video structure continues in the next transport packet.
A further complication is that transport packets may have variable sized headers such that a spanned video data structure continues at a location that cannot be pre-determined until the length of the next header is understood. This complicates the video processing entity because it must constantly monitor to see if it hits a packet boundary and then jump into packet header parsing and then resume data processing.